# 一对大括号创建一个空的字典：{}
Fruit = {'banana':2002,'apple':1001,'orange':3003}
Fruit['pear']=4004
print("fruitadd：",Fruit)

del Fruit['orange']
print("fruitdel:",Fruit)

a=Fruit.keys()
b=Fruit.values()
c=list(a)
d=list(b)
print("key:",c,"value:",d)

# 检测成员
print("检测成员：",'apple' in Fruit)

# 排序
print("排序：",sorted(Fruit.values()))

# 构造函数dict()直接从键值对元组列表中构建字典。如果有固定的模式，列表推导式指定特定的键值对
dic1=dict([('apple',2020),('banana',2021),('mango',2022)])
print("类型转换为dic:",dic1)

# 字典推导可以用来创建任意键和值的表达式词典
dic2 = {x:x**2 for x in (2,4,6)}
print("dic2:",dic2)

# 如果关键字只是简单的字符串，使用关键字参数指定键值对
dic3= dict(sape=4139, guido=4127, jack=4098)
print("dic3:",dic3)

# 在字典中遍历时，关键字和对应的值可以使用 items() 方法同时解读出来
dic4 ={'gallahad': 'the pure', 'robin': 'the brave'}
for k,v in dic4.items():
    print("解读字典中的元素：",k,v)

# 在序列中遍历时，索引位置和对应值可以使用 enumerate() 函数同时得到
for x,y in enumerate(['tic', 'tac', 'toe']):
    print("索引位置和对应值：",x,y)

# 同时遍历两个或更多的序列，可以使用 zip() 组合
questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q,a in zip(questions,answers):
    print('what is your {0}? It is {1}.'.format(q,a))  # 0代表第一个参数q,1代表第二个参数a

# 反向遍历一个序列，首先指定这个序列，然后调用 reversed() 函数：
for i in reversed(range(1,10,2)):
    print("反向序列：",i)

# 按顺序遍历一个序列，使用 sorted() 函数返回一个已排序的序列，并不修改原值
for i in sorted(range(1,10,2)):
    print("排序的序列：",i)
